package com.yuyou.fn.educational.service;

import com.github.wens.framework.service.ISuperService;
import com.github.wens.mybatisplus.plugins.Page;
import com.yuyou.fn.educational.entity.Teacher;
import com.yuyou.fn.educational.vo.TeacherQueryVo;
import com.yuyou.fn.educational.vo.TeacherSaveOrUpdateVo;
import com.yuyou.fn.platform.permission.DataPermission;
import org.apache.poi.ss.usermodel.Workbook;

import java.util.List;

/**
 *
 * Teacher 表数据服务层接口
 *
 */
public interface ITeacherService extends ISuperService<Teacher,Long> {

    List<Teacher> findTeacherByBusTeamIdsAndCond(List<Long> busTeamIds,TeacherQueryVo teacherQueryVo);

    void saveOrUpdateTeacher(TeacherSaveOrUpdateVo teacherSaveOrUpdateVo);

    Page<Teacher> findTeacherByQueryForPage(TeacherQueryVo teacherQueryVo, DataPermission dataPermission, int pageNo, int pageSize);

    Page<Teacher> findTeacherByBusTeamListForPage(TeacherQueryVo teacherQueryVo, List<Long> busTeamIds, int pageNo, int pageSize);

    Page<Teacher> findTeacherInBusTeamListOrNullForPage(DataPermission dataPermission,TeacherQueryVo teacherQueryVo, List<Long> busTeamIds, int pageNo, int pageSize);

    List<Teacher> findTeacherByQueryForList(TeacherQueryVo teacherQueryVo);


    void  deleteTeacher(Long teacherId);

    Page<Teacher> findTeacherListForClassArrangement(TeacherQueryVo teacherQueryVo , int pageNo, int pageSize);



	Teacher findTeacherByAuthenticationCode(String authenticationCode);


	Workbook exportTeachers(TeacherQueryVo teacherQueryVo, DataPermission dataPermission);
    List<Teacher> findOnJobTeacherByPhoneNo(String phoneNo,Long areaTeamId);

    Teacher findTeacherByIdNo(String idNo);

    Teacher findTeacherByAreaTeamIdTeacherName(Long areaTeamId , String teacherName );

    List<Teacher> findTeacherListByIdNos(List<String> idNos);

    List<Teacher> findListByAreaTeamId(long areaTeamId,String ...columns);

    String findTeacherNameFromFastCache(Long teacherId);

}